package com.pig4cloud.pig.ai.api.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;

/**
 * 图谱关系管理实体
 *
 * @author xuzhuang
 * @date 2024年6月13日10:30:40
 */
@Data
@TableName("topo_relation")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "图谱关系管理")
public class RelationEntity extends Model<RelationEntity> {


	/**
	 * 主键id
	 */
	@TableId(type = IdType.ASSIGN_ID)
	@Schema(description="主键id")
	private Long id;

	/**
	 * 数据源名称
	 */
	@NotBlank(message = "数据源名称")
	@Schema(description = "数据源名称")
	private String datasourceName;

	/**
	 * 数据源id
	 */
	@Schema(description="数据源id")
	@TableField("datasource_id")
	private Long datasourceId;

	/**
	 * 表名称
	 */
	@Schema(description="表名称")
	@TableField("table_name")
	private String tableName;

	/**
	 * 表描述
	 */
	@Schema(description="表描述")
	@TableField("table_schema")
	private String tableSchema;

	/**
	 * 字段名称
	 */
	@Schema(description="字段名称")
	@TableField("filed_name")
	private String filedName;

	/**
	 * 字段描述
	 */
	@Schema(description="字段描述")
	@TableField("filed_schema")
	private String filedSchema;

	/**
	 * 排序
	 */
	@Schema(description="排序")
	@TableField("sort_order")
	private Integer sortOrder;


	/**
	 * 创建人
	 */
	@Schema(description="创建人")
	@TableField("create_by")
	private String createBy;

	/**
	 * 创建时间
	 */
	@Schema(description="创建时间")
	@TableField("create_time")
	private LocalDateTime createTime;

	/**
	 * 更新人
	 */
	@Schema(description="更新人")
	@TableField("update_by")
	private String updateBy;

	/**
	 * 更新时间
	 */
	@Schema(description="更新时间")
	@TableField("update_time")
	private LocalDateTime updateTime;

	/**
	 * 是否删除
	 */
	@Schema(description="备注")
	@TableField("del_flag")
	private String delFlag;

	/**
	 * 关系ID(父Id)
	 */
	@Schema(description="关系ID(父Id)")
	@TableField("relation_id")
	private Long relationId;

	/**
	 * 图谱ID
	 */
	@Schema(description="图谱ID")
	@TableField("topo_id")
	private Long topoId;
}